fix(release): drop non-functional plugin-pin extra-files, use caret pin#104
Conversation
The extra-files json updaters under the packages/code component never ran: release-please resolves a component's extra-files paths relative to that component's directory, so plugins/*/package.json was looked for under packages/code/plugins/* and silently skipped. Because the plugins are independently versioned (not lockstep), the code version can't be stamped onto root-level files from a sub-component. - release: remove the dead extra-files block from packages/code - plugins: pin code-intelligence-lsp to ^0.1.14 so npm auto-picks up 0.1.x patches of @pleaseai/code (which is where lsp-multiplex ships), with no release-please machinery
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (13)
📝 WalkthroughWalkthroughThis PR changes ChangesDependency configuration update
Estimated code review effort: 2 (Simple) | ~10 minutes Suggested reviewers: N/A 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Code Review
This pull request removes the extra-files configuration for @pleaseai/code in release-please-config.json and updates the dependency in plugins/code-intelligence-lsp/package.json to use a caret range (^0.1.14). The reviewer suggests updating the remaining 13 LSP plugins to also use caret ranges for @pleaseai/code to avoid manual maintenance overhead and potential version drift, as they will no longer be automatically updated by release-please.
Greptile SummaryThis PR removes dead
Confidence Score: 4/5The release-please config fix and code-intelligence-lsp caret pin are correct, but the 13 stable plugins were also converted to caret ranges despite the PR explicitly calling that out-of-scope — needs author confirmation before merging. The 13 stable plugins were silently converted from exact The 13 stable plugin package.json files (clangd-lsp, csharp-lsp, dart-lsp, elixir-lsp, eslint-lsp, fsharp-lsp, jdtls-lsp, kotlin-lsp, lua-lsp, rubocop-lsp, terraform-lsp, texlab-lsp, zls-lsp) need attention — their caret-range conversion appears to conflict with the stated scope of the change. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[release-please triggers on packages/code bump] --> B{extra-files present?}
B -- "Before PR (dead config)" --> C[Resolve paths relative to packages/code/]
C --> D[plugins/*/package.json not found → silently skipped]
B -- "After PR (removed)" --> E[No extra-files step]
E --> F[Plugin pins stay as-is in repo]
G[npm install in plugin] --> H{Pin format?}
H -- "Exact: 0.1.13 / 0.1.14 (before)" --> I[Installs exactly that version]
H -- "Caret: ^0.1.13 / ^0.1.14 (after)" --> J[Installs latest 0.1.x patch automatically]
J --> K[code-intelligence-lsp picks up lsp-multiplex fixes]
J --> L[Other 13 plugins also auto-upgrade — intent unclear per PR description]
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
A[release-please triggers on packages/code bump] --> B{extra-files present?}
B -- "Before PR (dead config)" --> C[Resolve paths relative to packages/code/]
C --> D[plugins/*/package.json not found → silently skipped]
B -- "After PR (removed)" --> E[No extra-files step]
E --> F[Plugin pins stay as-is in repo]
G[npm install in plugin] --> H{Pin format?}
H -- "Exact: 0.1.13 / 0.1.14 (before)" --> I[Installs exactly that version]
H -- "Caret: ^0.1.13 / ^0.1.14 (after)" --> J[Installs latest 0.1.x patch automatically]
J --> K[code-intelligence-lsp picks up lsp-multiplex fixes]
J --> L[Other 13 plugins also auto-upgrade — intent unclear per PR description]
Prompt To Fix All With AIFix the following 1 code review issue. Work through them one at a time, proposing concise fixes.
---
### Issue 1 of 1
plugins/clangd-lsp/package.json:4
**Scope creep: 13 "stable" plugins unexpectedly converted to caret ranges**
The PR description explicitly says *"The other 13 LSP plugins only use the stable `code lsp-server` command, so they keep their exact `0.1.13` pins. (Converting them to caret ranges too is possible but out of scope here.)"* Yet the diff converts all 13 (`clangd-lsp`, `csharp-lsp`, `dart-lsp`, `elixir-lsp`, `eslint-lsp`, `fsharp-lsp`, `jdtls-lsp`, `kotlin-lsp`, `lua-lsp`, `rubocop-lsp`, `terraform-lsp`, `texlab-lsp`, `zls-lsp`) from `0.1.13` to `^0.1.13`. This means these plugins will now silently auto-upgrade to any future `0.1.x` patch — behaviour the PR explicitly called out-of-scope. Please confirm this was intentional and update the description accordingly, or revert these 13 files to the exact `0.1.13` pin.
Reviews (2): Last reviewed commit: "fix(plugins): use caret range for @pleas..." | Re-trigger Greptile |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
No issues found across 2 files
Architecture diagram
sequenceDiagram
participant RP as Release Please (GitHub Action)
participant Config as release-please-config.json
participant Code as @pleaseai/code (packages/code)
participant PluginCIL as plugins/code-intelligence-lsp
participant PluginOther as plugins/* (other 13)
participant Npm as npm registry
participant Installer as npm install (CI/Dev)
Note over RP,Config: extra-files block removed from packages/code
RP->>Config: Read component config
Config-->>RP: packages/code (no extra-files)
RP->>Code: Bump version (e.g., 0.1.14)
Code-->>RP: Updated package.json
Note over RP,Config: OLD: extra-files block existed but paths resolved relative to packages/code<br/>so plugins/*/package.json were never reached → dead config
Note over PluginCIL,PluginOther: Plugin dependency pins unchanged by Release Please
Installer->>PluginCIL: npm install @pleaseai/code
PluginCIL->>Npm: Resolve "^0.1.14" (caret range)
alt Compatible 0.1.x version found
Npm-->>PluginCIL: Latest 0.1.x (e.g., 0.1.14)
else No compatible version
Npm-->>PluginCIL: Resolution error
end
Installer->>PluginOther: npm install @pleaseai/code
PluginOther->>Npm: Resolve "0.1.13" (exact pin)
Npm-->>PluginOther: Exactly 0.1.13
Note over PluginCIL: Caret pin allows automatic patch updates<br/>without release-please config
…gins Apply gemini-code-assist review: convert the 13 exact 0.1.13 pins to ^0.1.13 so npm auto-picks up 0.1.x patches of @pleaseai/code without manual bumps, matching code-intelligence-lsp. Backward-compatible (>=0.1.13 <0.2.0).
|
| "private": true, | ||
| "dependencies": { | ||
| "@pleaseai/code": "0.1.13" | ||
| "@pleaseai/code": "^0.1.13" |
There was a problem hiding this comment.
Scope creep: 13 "stable" plugins unexpectedly converted to caret ranges
The PR description explicitly says "The other 13 LSP plugins only use the stable code lsp-server command, so they keep their exact 0.1.13 pins. (Converting them to caret ranges too is possible but out of scope here.)" Yet the diff converts all 13 (clangd-lsp, csharp-lsp, dart-lsp, elixir-lsp, eslint-lsp, fsharp-lsp, jdtls-lsp, kotlin-lsp, lua-lsp, rubocop-lsp, terraform-lsp, texlab-lsp, zls-lsp) from 0.1.13 to ^0.1.13. This means these plugins will now silently auto-upgrade to any future 0.1.x patch — behaviour the PR explicitly called out-of-scope. Please confirm this was intentional and update the description accordingly, or revert these 13 files to the exact 0.1.13 pin.
Prompt To Fix With AI
This is a comment left during a code review.
Path: plugins/clangd-lsp/package.json
Line: 4
Comment:
**Scope creep: 13 "stable" plugins unexpectedly converted to caret ranges**
The PR description explicitly says *"The other 13 LSP plugins only use the stable `code lsp-server` command, so they keep their exact `0.1.13` pins. (Converting them to caret ranges too is possible but out of scope here.)"* Yet the diff converts all 13 (`clangd-lsp`, `csharp-lsp`, `dart-lsp`, `elixir-lsp`, `eslint-lsp`, `fsharp-lsp`, `jdtls-lsp`, `kotlin-lsp`, `lua-lsp`, `rubocop-lsp`, `terraform-lsp`, `texlab-lsp`, `zls-lsp`) from `0.1.13` to `^0.1.13`. This means these plugins will now silently auto-upgrade to any future `0.1.x` patch — behaviour the PR explicitly called out-of-scope. Please confirm this was intentional and update the description accordingly, or revert these 13 files to the exact `0.1.13` pin.
How can I resolve this? If you propose a fix, please make it concise.


Summary
Follow-up to #101. The
extra-filesjson updaters added to thepackages/codecomponent to auto-sync plugin@pleaseai/codepins never ran — verified against release PR #102, which bumpedpackages/codeto 0.1.14 but left everyplugins/*/package.jsonuntouched.Root cause
release-please resolves a component's
extra-filespaths relative to that component's directory. Soplugins/*/package.jsonlisted underpackages/codewas looked for atpackages/code/plugins/*/package.jsonand silently skipped. Root-relative paths only work under the.component — but that stamps the.version (0.1.23), not code's (0.1.14). Because the packages are independently versioned (not lockstep like grafana/faro-web-sdk, which puts such cross-package pins under one root component), release-pleaseextra-filescan't cleanly stamp the code version onto root-level files. The block was dead config.Changes
extra-filesblock from thepackages/codecomponent inrelease-please-config.json.code-intelligence-lspto^0.1.14(was0.1.14). A caret range means npm auto-picks up any0.1.xpatch of@pleaseai/code— which is wherelsp-multiplexand its future fixes ship — with no release-please machinery. At a breaking0.2.0the pin would be bumped manually (correct: breaking changes shouldn't auto-apply).Notes
code-intelligence-lspstill requires ≥0.1.14, published via release PR chore: release main #102.code lsp-servercommand, so they keep their exact0.1.13pins. (Converting them to caret ranges too is possible but out of scope here.)Test Plan
@pleaseai/code@0.1.14publishes (via chore: release main #102), confirm a freshcode-intelligence-lspinstall resolves^0.1.14to 0.1.14 andlsp-multiplexworks.Summary by cubic
Removed dead release updaters under
packages/codeand switched all LSP plugins to caret pins for@pleaseai/codeto auto-pick up0.1.xfixes without release churn.Bug Fixes
extra-filesblock frompackages/codeinrelease-please-config.json(paths were resolved relative to the component, so pluginpackage.jsonfiles were never updated).Dependencies
plugins/code-intelligence-lsp:@pleaseai/code->^0.1.14.@pleaseai/code->^0.1.13.Written for commit 75d44ca. Summary will update on new commits.